package org.infinispan.server.hotrod; import static org.infinispan.server.hotrod.test.HotRodTestingUtil.host; import static org.infinispan.server.hotrod.test.HotRodTestingUtil.serverPort; import static org.infinispan.server.hotrod.test.HotRodTestingUtil.startHotRodServer; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; import org.infinispan.commons.util.SslContextFactory; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.server.core.configuration.SslConfiguration; import org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder; import org.infinispan.server.hotrod.test.HotRodClient; import org.testng.annotations.Test; /** * Hot Rod server functional test over SSL * * @author Tristan Tarrant * @since 5.3 */ @Test(groups = "functional", testName = "server.hotrod.HotRodSslFunctionalTest") public class HotRodSslFunctionalTest extends HotRodFunctionalTest { private String keyStoreFileName = getClass().getClassLoader().getResource("default_server_keystore.jks").getPath(); private String trustStoreFileName = getClass().getClassLoader().getResource("default_client_truststore.jks").getPath(); @Override protected HotRodServer createStartHotRodServer(EmbeddedCacheManager cacheManager) { HotRodServerConfigurationBuilder builder = new HotRodServerConfigurationBuilder(); builder.proxyHost(host()).proxyPort(serverPort()).idleTimeout(0); builder.ssl().enable().keyStoreFileName(keyStoreFileName).keyStorePassword("secret".toCharArray()) .trustStoreFileName(trustStoreFileName).trustStorePassword("secret".toCharArray()); return startHotRodServer(cacheManager, serverPort(), -1, builder); } @Override protected HotRodClient connectClient() { SslConfiguration ssl = hotRodServer.getConfiguration().ssl(); SSLContext sslContext = SslContextFactory.getContext(ssl.keyStoreFileName(), ssl.keyStorePassword(), ssl.trustStoreFileName(), ssl.trustStorePassword()); SSLEngine sslEngine = SslContextFactory.getEngine(sslContext, true, false); return new HotRodClient(host(), hotRodServer.getPort(), cacheName, 60, (byte) 20, sslEngine); } }